package collection02;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/** 集合的排序---Point对象 */
public class SortPoint {
    public static void main(String[] args) {
        List<Point> list = new ArrayList<>();
        list.add(new Point(5,9));
        list.add(new Point(5,6));
        list.add(new Point(57,89));
        list.add(new Point(1,4));
        list.add(new Point(10,8));
        list.add(new Point(22,35));
        System.out.println("list原始数据："+list);

        //自定义排序规则
        Collections.sort(list,(o1,o2)->{
                int len1 = o1.getX()*o1.getX()+o1.getY()*o1.getY();
                int len2 = o2.getX()*o2.getX()+o2.getY()*o2.getY();
                if(o1.getX()==o2.getX()){
                    return o1.getY()-o2.getY(); //升序
                }else{
                    return len1-len2; //升序
                }
                //return len2-len1; //降序
                //return o1.getX()-o2.getX(); //按x坐标升序
                //return o2.getY()-o1.getY(); //按y坐标降序
            });
        System.out.println("list排序后的数据："+list);

        //自定义排序规则，list简便版
        list.sort((o1,o2)->{
                int len1 = o1.getX()*o1.getX()+o1.getY()*o1.getY();
                int len2 = o2.getX()*o2.getX()+o2.getY()*o2.getY();
                return len1-len2;
            });
        System.out.println("list排序后的数据："+list);
    }
}
